package com.tjetc.config;

import com.tjetc.pojo.User;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;

/**
 * @author gaoyongxiang
 * @version v1.0
 * @since 2025-10-09
 */
@Configuration
public class UserConfig {

    // 注入到IOC中
    /*
        根据条件进行注入
        @ConditionalOnBean(name = "a1"): 存在指定的bean才进行注入
        @ConditionalOnMissingBean(name = "a1")： 存在指定的bean 就不进行注入

       场景：bean是有生命周期，也有创建顺序，有些bean会依赖于某些bean的生成
        有效bean，和某些bean功能上有些差异，但是只能存在某一个bean功能
     */
    @Bean
//    @ConditionalOnBean(name = "a")
//    @ConditionalOnMissingBean(name = "a")
//    @Scope("prototype")
    @Scope("singleton")
    public User user() {
       return new User("zhangsan");
    }
}
